package com.ruoyi.order.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

import javax.annotation.sql.DataSourceDefinition;

/**
 * 订单对象 cf_order
 * 
 * @author ruoyi
 * @date 2024-08-13
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CfOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private Long orderId;

    /** 核销码【UUID产生、唯一】 */
    private String verificationCode;

    /** 核销码图片 */
    private String verificationImg;

    /** 服务编号id */
    @Excel(name = "服务编号id")
    private Long serviceId;

    /** 服务类别id */
    @Excel(name = "服务类别id")
    private Long serviceTypeId;

    /** 下单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderTime;

    /** 预约时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预约时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reservationTime;

    /** 订单车辆id号 */
    @Excel(name = "订单车辆id号")
    private Long carId;

    /** 优惠卷id【每次只用使用一张】 */
    @Excel(name = "优惠卷id【每次只用使用一张】")
    private Long couponId;

    /** 实付价格 */
    @Excel(name = "实付价格")
    private Long price;

    /** 支付状态 */
    @Excel(name = "支付状态")
    private Long payStatus;

    /** 支付时间 */
    private Date payTime;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private Long status;

    /** 删除状态 */
    private Long deleted;

    /** 是否评价 */
    private Integer evaluate;
    /** 商户名称 */
    private String name;
    /** 原价 */
    private double originalPrice;
    /** 折扣价 */
    private double presentPrice;
    /** 服务内容 */
    private String introduction;
    /** 商家 */
    private String merchantName;
    /** 买家名称 */
    private String userName;
    /** 买家电话 */
    private String phone;
    /** 优惠价 */
    private double preferentialMoney;

    private Long stId;

    private CfServiceType cfServiceType;

    private Long orderCount;

    public Long getStId() {
        return stId;
    }

    public void setStId(Long stId) {
        this.stId = stId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getOriginalPrice() {
        return originalPrice;
    }

    public void setOriginalPrice(double originalPrice) {
        this.originalPrice = originalPrice;
    }

    public double getPresentPrice() {
        return presentPrice;
    }

    public void setPresentPrice(double presentPrice) {
        this.presentPrice = presentPrice;
    }

    public String getIntroduction() {
        return introduction;
    }

    public void setIntroduction(String introduction) {
        this.introduction = introduction;
    }

    public String getMerchantName() {
        return merchantName;
    }

    public void setMerchantName(String merchantName) {
        this.merchantName = merchantName;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public double getPreferentialMoney() {
        return preferentialMoney;
    }

    public void setPreferentialMoney(double preferentialMoney) {
        this.preferentialMoney = preferentialMoney;
    }

    public void setOrderId(Long orderId)
    {
        this.orderId = orderId;
    }

    public Long getOrderId() 
    {
        return orderId;
    }
    public void setVerificationCode(String verificationCode) 
    {
        this.verificationCode = verificationCode;
    }

    public String getVerificationCode() 
    {
        return verificationCode;
    }
    public void setVerificationImg(String verificationImg) 
    {
        this.verificationImg = verificationImg;
    }

    public String getVerificationImg() 
    {
        return verificationImg;
    }
    public void setServiceId(Long serviceId) 
    {
        this.serviceId = serviceId;
    }

    public Long getServiceId() 
    {
        return serviceId;
    }
    public void setServiceTypeId(Long serviceTypeId) 
    {
        this.serviceTypeId = serviceTypeId;
    }

    public Long getServiceTypeId() 
    {
        return serviceTypeId;
    }
    public void setOrderTime(Date orderTime) 
    {
        this.orderTime = orderTime;
    }

    public Date getOrderTime() 
    {
        return orderTime;
    }
    public void setReservationTime(Date reservationTime) 
    {
        this.reservationTime = reservationTime;
    }

    public Date getReservationTime() 
    {
        return reservationTime;
    }
    public void setCarId(Long carId) 
    {
        this.carId = carId;
    }

    public Long getCarId() 
    {
        return carId;
    }
    public void setCouponId(Long couponId) 
    {
        this.couponId = couponId;
    }

    public Long getCouponId() 
    {
        return couponId;
    }
    public void setPrice(Long price) 
    {
        this.price = price;
    }

    public Long getPrice() 
    {
        return price;
    }
    public void setPayStatus(Long payStatus) 
    {
        this.payStatus = payStatus;
    }

    public Long getPayStatus() 
    {
        return payStatus;
    }
    public void setPayTime(Date payTime) 
    {
        this.payTime = payTime;
    }

    public Date getPayTime() 
    {
        return payTime;
    }
    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }
    public void setDeleted(Long deleted) 
    {
        this.deleted = deleted;
    }

    public Long getDeleted() 
    {
        return deleted;
    }
    public void setEvaluate(Integer evaluate) 
    {
        this.evaluate = evaluate;
    }

    public Integer getEvaluate() 
    {
        return evaluate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("orderId", getOrderId())
            .append("verificationCode", getVerificationCode())
            .append("verificationImg", getVerificationImg())
            .append("serviceId", getServiceId())
            .append("serviceTypeId", getServiceTypeId())
            .append("orderTime", getOrderTime())
            .append("reservationTime", getReservationTime())
            .append("carId", getCarId())
            .append("couponId", getCouponId())
            .append("price", getPrice())
            .append("payStatus", getPayStatus())
            .append("payTime", getPayTime())
            .append("status", getStatus())
            .append("deleted", getDeleted())
            .append("evaluate", getEvaluate())
                .append("name", getName())
                .append("originalPrice", getOriginalPrice())
                .append("presentPrice",getPresentPrice())
                .append("introduction", getIntroduction())
                .append("merchantName", getMerchantName())
                .append("userName", getName())
                .append("phone", getPhone())
                .append("preferentialMoney", getPreferentialMoney())
                .append("stId",getStId())
            .toString();
    }
}
